#include<stdio.h>
#include<stdlib.h>
#include<time.h>

#define N 10

char* str = "hello";
int var = 0;

void init_arr(int* arr,int len)
{
  int i = 0;

  for (i = 0; i < len; i++)
  {
    arr[i] = rand()%20 + 1;
  }
}

void selection_sort(int *arr, int len)
{
    int i, j, minIndex, temp;
    
    // 外层循环控制排序轮数
    for (i = 0; i < len - 1; i++)
    {
        // 假设当前位置的元素是最小的
        minIndex = i;
        // 内层循环用于找到最小元素的索引
        for (j = i + 1; j < len; j++)
        {
            if (arr[j] < arr[minIndex])
            {
                // 更新最小元素的索引
                minIndex = j;
            }
        }
        // 将找到的最小元素与第i个元素交换位置
        temp = arr[minIndex];
        arr[minIndex] = arr[i];
        arr[i] = temp;
    }
}

void print_arr(int* arr, int len)
{
  int i = 0;
  for (i = 0; i < len; i++)
  {
    printf("arr[%d] = %d\n", i, arr[i]);
  }
}

int main()
{
  int arr[N];
  char* p = "hello";

  srand(time(NULL));

  init_arr(arr, N);
  print_arr(arr, N);

  selection_sort(arr, N);

  printf("-----------------after sort -------------------\n");

  print_arr(arr, N);

  return 0;
}
